home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "mdlRoman"
- Function Num2Roman(Number)
- On Error GoTo Error
- Number = Abs(Int(Val(Number)))
- If Number = 0 Or Number > 3999 Then GoTo Error
- Number = CStr(Number)
- For i = 1 To Len(Number)
- Num2Roman = SingleDigit(Val(Left(Right(Number, i), 1)), Val("1" & String(i - 1, "0"))) & Num2Roman
- Next i
- Exit Function
- Error:
- Num2Roman = "Error"
- End Function
-
- Function Letter(LetterValue As Integer)
- Select Case LetterValue
- Case 1: Letter = "I"
- Case 5: Letter = "V"
- Case 10: Letter = "X"
- Case 50: Letter = "L"
- Case 100: Letter = "C"
- Case 500: Letter = "D"
- Case 1000: Letter = "M"
- End Select
- End Function
-
- Function SingleDigit(Number As Byte, Multiplier As Integer)
- Select Case Number
- Case 1: SingleDigit = Letter(Multiplier)
- Case 2: SingleDigit = Repeat(2, Letter(Multiplier))
- Case 3: SingleDigit = Repeat(3, Letter(Multiplier))
- Case 4: SingleDigit = Letter(Multiplier) & Letter(Multiplier * 5)
- Case 5: SingleDigit = Letter(Multiplier * 5)
- Case 6: SingleDigit = Letter(Multiplier * 5) & Letter(Multiplier)
- Case 7: SingleDigit = Letter(Multiplier * 5) & Repeat(2, Letter(Multiplier))
- Case 8: SingleDigit = Letter(Multiplier * 5) & Repeat(3, Letter(Multiplier))
- Case 9: SingleDigit = Letter(Multiplier) & Letter(Multiplier * 10)
- Case 0: SingleDigit = ""
- End Select
- End Function
-
- Function Repeat(Repetitions As Long, Expression As String)
- For i = 1 To Repetitions
- Repeat = Repeat & Expression
- Next i
- End Function
-